Organizations, including businesses, governments and educational institutions, rely on computer networks to share and exchange information. A computer network typically comprises a plurality of entities interconnected by a communications media. An entity may consist of any device, such as a computer, that sources (i.e., transmits) and/or receives messages over the communications media. A common type of computer network is a local area network (“LAN”) which typically refers to a privately owned network within a single building or campus. LANs typically employ a data communication protocol (LAN standard), such as Ethernet, FDDI or Token Ring, that defines the functions performed by the data link and physical layers of a communications architecture (i.e., a protocol stack).
In many instances, several LANs may be interconnected by point-to-point links, microwave transceivers, satellite hook-ups, etc. to form a wide area network (“WAN”) or subnet that may span an entire city, country or continent. One or more intermediate network devices are often used to couple LANs together and allow the corresponding entities to exchange information. For example, a bridge may be used to provide a “bridging” function between two or more LANs. Alternatively, a switch may be utilized to provide a “switching” function for transferring information between a plurality of LANs. Typically, the bridge or switch is a computer that includes a plurality of ports which may be coupled to the LANs. Ports used to couple switches to each other are generally referred to as a trunk ports, whereas ports used to couple switches to LANs or end stations are generally referred to as access ports. The switching function includes receiving data from a sending entity at a source port and transferring that data to at least one destination port for forwarding to a receiving entity.
Another intermediate network device is referred to as a router. A router is often used to interconnect LANs executing different LAN standards and/or to provide higher functionality than bridges or switches. To perform these tasks, a router, which is also a computer having a plurality of ports, typically examines the destination address and source address of all messages passing through the router. Routers typically operate at the network layer of the protocol stack, such as the Internet Protocol (IP) layer of the Transmission Control Protocol/Internet Protocol (TCP/IP) reference model. Furthermore, if the LAN standards associated with the source entity and the destination entity are dissimilar (e.g., Ethernet and Token Ring), the router may also alter the format of the packet so that it may be received by the destination entity. Routers also execute one or more routing protocols or algorithms, which are used to determine where network messages are to be sent.
Virtual Local Area Networks
A computer network may also be segregated into a series of logical network segments. U.S. Pat. No. 5,394,402, issued Feb. 28, 1995 (the “'402 Patent”), for example, discloses an arrangement for associating any port of a switch with any particular segregated network group. Specifically, according to the '402 Patent, any number of physical ports of a particular switch may be associated with any number of groups within the switch by using a virtual local area network (VLAN) arrangement that virtually associates the port with a particular VLAN designation. More specifically, the '402 Patent discloses a switch or hub that associates VLAN designations with its ports and further associates those VLAN designations with messages transmitted from any of the ports to which the VLAN designation has been assigned.
The VLAN designation for each port is stored in a memory portion of the switch such that every time a message is received on a given access port the VLAN designation for that port is associated with the message. Association is accomplished by a flow processing element which looks up the VLAN designation in the memory portion based on the particular access port at which the message was received, In many cases, it may be desirable to interconnect a plurality of these switches in order to extend the VLAN associations of ports in the network. The '402 Patent, in fact, states that an objective of its VLAN arrangement is to allow all ports and entities of the network having the same VLAN designation to exchange messages by associating a VLAN designation with each message. Thus, those entities having the same VLAN designation function as if they are all part of the same LAN. Message exchanges between parts of the network having different VLAN designations are specifically prevented in order to preserve the boundaries of each VLAN segment or domain. For convenience, each VLAN designation is often associated with a different color, such as red, blue, green, etc.
In addition to the '402 Patent, the Institute of Electrical and Electronics Engineers (IEEE) has promulgated the 802.1Q standard for Virtual Bridged Local Area Networks.
The 802.1Q standard, among other things, defines a specific VLAN-tagged message format.
Multi-casting
Computer networks generally support the forwarding and distribution of three basic message types. Messages sent from a first network entity to a second network entity are referred to as unicast messages. Messages sent from one network entity but received by all entities within a particular bridged or network domain are referred to as broadcast messages. Messages sent from one entity and received by many (but not all) entities within a network domain are referred to as multicast messages. IP protocol of the TCP/IP Reference Model defines five classes of IP addresses. Class D IP addresses, which begin with the bit sequence “1110”, are used for sourcing multicast messages. That is, a host or entity wishing to send a multicast message utilizes a class D IP address. To receive multicast messages, entities typically register with one or more multicast routers. Registration may be accomplished via the Internet Group Management Protocol (IGMP), which defines a set of registration messages and operations that are used by entities to join and leave multicast groups (e.g., JoinGroup and LeaveGroup), and is implemented as part of the IP protocol.
To limit the traffic caused by registration messages, only one entity per LAN typically transmits such a request. Other interested entities listen in on the requests of their neighbors and rely on the first subscription request, rather than making their own individual requests, to ensure that messages are delivered to their LAN. Bridges and switches may perform additional filtering so that multicast routers receive only one subscription request per router interface. In particular, bridges and switches may be configured to monitor the IGMP messaging between subscribing entities and multicast routers to learn which of their ports lead either to a multicast router or to at least one entity subscribing to a particular multicast group address. This configuration is referred to as IGMP snooping.
To distribute multicast messages, routers may employ a multicast routing algorithm, such as multicast open shortest path first (MOSPF) or distance vector multicast routing protocol (DVMRP). With MOSPF and DVMRP, routers construct a spanning tree per multicast group address that basically includes all group members. The routers then build multicast forwarding tables for use in distributing multicast messages. DVMRP, in particular, creates an overlay topology on top of the computer network consisting of several multicast-capable islands interconnected by tunnels. Upon receipt of a multicast message, both MOSPF and DVMRP utilize a multicast forwarding algorithm, such as reverse path forwarding (RPF), to determine whether the message should be forwarded. In response to receiving a multicast message from a particular source, a multicast router using RPF first determines which interface it uses to send unicast messages to the source. If the multicast message was received on the same interface used to send unicast messages, the router forwards the multicast message onto those interfaces that are coupled to subscribers of the message. If the multicast message is received on an interface other than the one used to reach the source, the router discards the message as it is probably a duplicate of a message already forwarded by the router.
More recently, the Network Working Group of the Internet Engineering Task Force (IETF) is working on a technique for distributing multicast messages that use standard unicast routing tables instead of creating an overlay topology. The IETF approach is called Protocol Independent Multicast (PIM), because it is independent of the unicast routing protocol implemented by any given router utilizing it. PIM operates in one of two modes: Sparse Mode (where sources and subscribers are few in number and widely distributed) and Dense Mode (where sources and subscribers are closely packed). In Dense Mode, a router assumes that all other routers want multicast messages received by the first router, and, as a result, it forwards the multicast to all routers. To stop receipt of a particular multicast stream, a router must send a PIM Prune message toward the source. In Sparse Mode, a router assumes that other routers do not want copies of multicast messages, unless it has received specific Join requests for such messages. The routers also build a shared multicast distribution tree centered at a Rendezvous Point. Multicast messages are tunneled from the source to the Rendezvous Point which then distributes the messages to the subscribers along the shared tree. For sources whose multicast transmission rate is high, routers can also build source-specific trees by issuing Join/Prune messages.
Multicast messages can also be distributed within VLAN networks. That is, entities associated with one or more VLAN designations may subscribe to one or more multicast message streams. Similarly, entities associated with one or more VLAN designations may source multicast messages. Since bridges and switches are typically configured to respect VLAN boundaries, they typically do not bridge or switch messages, including multicast messages, from one VLAN domain to another (e.g., from the red VLAN to the blue VLAN). Only multicast routers, which typically consider VLAN domains as separate subnetworks (“subnets”), are capable of transferring multicast messages from one VLAN designation to another. Thus, to the extent multicast subscribers and sourcing entities are associated with more than one VLAN designation, such messages must be forwarded to and replicated by one or more multicast routers.
In particular, conventional multicast routers define a separate interface for each VLAN domain to which they are coupled. When a multicast message is received on an incoming interface, the router replicates it onto the outgoing interface(s) identified by its routing tables. In effect, the router creates a separate copy of the message for each of the VLAN designations (other than the VLAN designation of the entity sourcing the multicast message) in order to deliver multicast messages to subscribers of diverse VLAN designations. For example, suppose entities associated with the red, blue, green and yellow VLAN designations all subscribe to the same multicast group address and that an entity associated with the red VLAN designation sources one or more such messages. By listening to IGMP messages, bridges and switches' can distribute such multicast messages to all subscribers that share the same VLAN designation as the sourcing entity (e.g., red). In order to distribute the messages to the subscribers associated with the blue, green and yellow VLAN designations, however, each message must be processed by the multicast router. In particular, the multicast router replicates the message onto each of the blue, green and yellow VLAN interfaces, basically tagging each copy with a different VLAN designation. Each tagged copy is then sent out on the network by the multicast router. Bridges and switches then distribute these messages to the subscribers associated with the respective VLAN designations, since the VLAN designations of the copies now match the remaining subscribers.
Although this arrangement can deliver multicast messages to entities associated with diverse VLAN designations, it has several disadvantages. First, it requires that numerous copies of each multicast message be made and distributed across the network (i.e., one per subscribing VLAN designation). In addition, to the extent a multicast router is coupled to the network by a single trunk link, each copy must be carried on this one link. Depending on the number of VLAN designations associated with a given multicast message, this may severely compromise the throughput on this trunk link. In addition, the replication of multicast messages, which must then be distributed by the bridges and switches, consumes valuable network bandwidth as well as processor and memory resources. As a result, network performance may suffer.
Discussion of Related System
An improvement to the conventional distribution of multicast messages in VLAN networks is disclosed in co-pending and commonly owned application Ser. No. 08/882,632 entitled, SYSTEM FOR EFFICIENT MULTICAST DISTRIBUTION IN A VIRTUAL LOCAL AREA NETWORK, filed Jun. 25, 1997 (the “'632 System”). With the '632 System, a multicast router creates one or more Multicast VLAN identifiers (MVLAN-IDs) for use in distributing multicast messages sourced from a particular VLAN designation. The MVLAN-ID encompasses all of the VLAN designations associated with subscribing entities, except for the VLAN designation of the entity that sourced the message. Accordingly, when a multicast message is received, rather than create multiple copies that are tagged with the individual VLAN designations associated with the subscribing entities, the multicast router creates a single copy of the message and appends to it the corresponding MVLAN-ID. Bridges and switches within the network associate their ports previously associated with just the subscribing VLAN designations (other than the VLAN designation associated with the source of the message) with the new MVLAN-ID as well. Bridges and switches are thus able to distribute this single copy of the multicast message to the remaining subscribers.
Although it represents a significant improvement over the conventional multicast distribution methods, the '632 System can result in the creation of a substantial number of MVLAN-IDs depending on the number of entities sourcing messages to a given multicast group address and their VLAN associations. Additionally, to the extent a multicast message received from outside a VLAN network is to be distributed to multiple VLAN designations within the VLAN network, the '632 System may still require multiple copies of the message to be created and distributed.
It is an object of the present invention to provide a system and method for efficiently distributing multicast messages in computer networks having one or more VLAN regions.
It is a further object of the present invention to provide a system and method for efficiently distributing multicast messages sourced from outside a VLAN region into the VLAN region.
It is still a further object of the present invention to provide a system and method for efficiently distributing multicast messages to VLAN regions that scales well as the number of VLAN designations increases.